﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace WindowsFormsApplication3
{
    public partial class Consulta_Autores : Form
    {
        DataSet ds;
        string rutaBDBiblioteca = "Data Source=JOHANA-PC;Initial Catalog=Biblioteca;Integrated Security=True";
        
        public Consulta_Autores()
        {
            InitializeComponent();
        }


        private void Consulta_Autores_Load(object sender, EventArgs e)
        {
            string ConsultaSQLLibros = "Select * From Autores Order By Cod_Aut";
            ds = new DataSet();

            AgregarTablaDataSetSQLServer(rutaBDBiblioteca, ConsultaSQLLibros, "Autores", ref ds);

            Grilla_Aut.DataSource = ds.Tables["Autores"];
            TitulosColumnas();

            CargarComboTexto(ref CbNom_Aut);
            CargarComboTexto(ref CbApe_Aut);
            CargarComboTexto(ref CbNac_Aut);
        }


         private void TitulosColumnas()
            {
            Grilla_Aut.Columns["Cod_Aut"].HeaderText = "CODIGO";
            Grilla_Aut.Columns["Nom_Aut"].HeaderText = "NOMBRE AUTOR";
            Grilla_Aut.Columns["Ape_Aut"].HeaderText = "APELLIDO AUTOR";
            Grilla_Aut.Columns["Nac_Aut"].HeaderText = "NACIONALIDAD";
            Grilla_Aut.Columns["Web_Aut"].HeaderText = "WEB AUTOR";
            Grilla_Aut.Columns["Blog_Aut"].HeaderText = "BLOG AUTOR";
            Grilla_Aut.Columns["Est_Aut"].HeaderText = "ESTADO";
            }


        private void AgregarTablaDataSetSQLServer(string ConexionBD, string ConsultaSQL, string NombreTabla, ref DataSet ds)
        {
            SqlConnection cn = new SqlConnection(ConexionBD);
            SqlDataAdapter adaptador = new SqlDataAdapter(ConsultaSQL, cn);
            cn.Open();
            adaptador.Fill(ds, NombreTabla);
        }


        private void CargarComboTexto(ref ComboBox NombreCombo)
        {
            NombreCombo.Items.Add("Comienza con:");
            NombreCombo.Items.Add("Contiene:");
            NombreCombo.Items.Add("Igual a:");
        }

       

        private void ConstruirClausulaSQL(string NombreCampo, string Operador, string Valor, ref string Clausula)
        {
            string d1 = "";
            string d2 = "";
            if (Clausula == "")
                Clausula = Clausula + " WHERE ";
            else
                Clausula = Clausula + " AND ";

            switch (Operador)
            {
                case "Comienza con:":
                    d1 = " LIKE '";
                    d2 = "%'";
                    break;
                case "Contiene:":
                    d1 = " LIKE '%";
                    d2 = "%'";
                    break;
                case "Igual a:":
                    d1 = " ='";
                    d2 = "'";
                    break;
            }
            Clausula =
                Clausula + NombreCampo + d1 + Valor + d2;
        } 

        private void BtnBuscar_Click(object sender, EventArgs e)
        {
            string ClausulaSQLAutores = "";
            if (CbNom_Aut.Text != "" && TxtNom_Aut.Text != "")
                ConstruirClausulaSQL("Nom_Aut",
                                     CbNom_Aut.Text,
                                     TxtNom_Aut.Text,
                                     ref ClausulaSQLAutores);
            if (CbApe_Aut.Text != "" && TxtApe_Aut.Text != "")
                ConstruirClausulaSQL("Ape_Aut",
                                     CbApe_Aut.Text,
                                     TxtApe_Aut.Text,
                                     ref ClausulaSQLAutores);
            if (CbNac_Aut.Text != "" && TxtNac_Aut.Text != "")
                ConstruirClausulaSQL("Nac_Aut",
                                     CbNac_Aut.Text,
                                     TxtNac_Aut.Text,
                                     ref ClausulaSQLAutores);
            ds.Tables.Clear();
            AgregarTablaDataSetSQLServer(rutaBDBiblioteca, "Select * From Autores" + ClausulaSQLAutores, "Consulta", ref ds);
            Grilla_Aut.DataSource = ds.Tables["Consulta"];
        }

        private void BtnQuitar_Click(object sender, EventArgs e)
        {
            ds.Tables.Clear();
            AgregarTablaDataSetSQLServer(rutaBDBiblioteca, "Select * From Autores Order By Cod_Aut", "Autores", ref ds);
            Grilla_Aut.DataSource = ds.Tables["Autores"];
            TitulosColumnas();

            CbNom_Aut.Text = "";
            CbApe_Aut.Text = "";
            CbNac_Aut.Text = "";
            TxtNom_Aut.Text = "";
            TxtApe_Aut.Text = "";
            TxtNac_Aut.Text = ""; 
        }

        private void BtnSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }

       

       


    }
}
